博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
重新捡起flask(二)
阅读量:6406 次
发布时间:2019-06-23

本文共 2069 字,大约阅读时间需要 6 分钟。

中午本来想睡一觉,结果本来想催眠用的看视频反倒让我精神起来了,那我还是继续flask吧。

现在模板基本快看完了,稍微发一下。

之前对模板的理解有些错误,其实jinja2里面的模板,或者说一个block其实就是一个已经帮你写好的代码了。

那既然已经写好了,但是我想改一下怎么办呢?

这个block神奇的地方就在于此,你还可以把继承的东西完全干掉,用自己的来,如果你只是想补充,你还可以先保留之前的东西。

说到底功能还是满强大的。

url_for函数其实也是第一次用,这一次用的是来获取静态文件的地址。还是很强大的。

flask自动其实生成了这个映射,一般来说这个函数是把视图函数当作参数的。

当然如果你获取静态文件的话,就不是视图函数,因为没有定义这样的视图函数。那就直接用static,flask会很聪明的去static文件夹里面去找东西。那具体文件名是什么呢?那就再加个关键字参数,filename=什么,然后这个会返回这个文件的相对路径。

在程序内相对路径就OK了。

在狗书里,把静态文件用在了收藏夹那个的图标那里。

我这里实测了一下,并不一定要求是ico文件,jpg文件也是OK的。

我们还想这样试下,如果改成一个外部文件,是否有用呢?

也许有用。

我们来试一下吧。

用的博客园图片地址,好丑...

最后还有一个要说明的是,其实之前都没太在意,是我们在jinja2模板里面竟然能用python函数。这简直屌了。

我们上面说的url_for函数就是放在模板里面的,当然这是有很大好处的。万一图片什么时候变了,只要改一下url_for的参数就好了。当然这其实也不是太好,最好还是要把这个作为render_template的参数才好,不然我每个html文件都要改一遍,也是惨。

最好,献上现在的主程序代码,和基模板。

from flask import Flask, render_templatefrom flask import request# from flask_script import Managerfrom flask_bootstrap import Bootstrapapp = Flask(__name__)bootstap = Bootstrap(app)# manager = Manager(app)@app.route("/")def index():    headers = request.headers    return render_template("index.html")@app.route("/user/
")def user(name): return render_template("user.html", name = name)@app.errorhandler(404)def page_not_found(e): return render_template('404.html'), 404@app.errorhandler(500)def page_not_found(e): return render_template('500.html'), 404if __name__ == "__main__": app.run(debug=True)
{% extends "bootstrap/base.html" %}{% block head %}{
{ super() }}
{% endblock %}{% block title %}Flasky{% endblock %}{% block navbar %}
{% endblock %}{% block content %}
{% endblock %}

 

转载于:https://www.cnblogs.com/onhacker/p/7856565.html

你可能感兴趣的文章
iOS宏(自己使用,持续更新)
查看>>
手把手玩转win8开发系列课程(3)
查看>>
NGINX引入线程池 性能提升9倍
查看>>
《淘宝技术这十年》读书笔记 (四). 分布式时代和中间件
查看>>
linux下mongodb定时备份指定的集合
查看>>
SMP架构多线程程序的一种性能衰退现象—False Sharing
查看>>
oVirt JBAS server start failed, ajp proxy cann't server correct. ovirt-engine URL cann't open
查看>>
CDP WebConsole上线公告
查看>>
ubuntu下安装摄像头应用程序xawtv
查看>>
GFS2,GFS,EXT2,EXT3 SEQ-write performance compare
查看>>
PostgreSQL 如何比较两个表的定义是否一致
查看>>
PHPCMS2008利用EXP
查看>>
扩展android-volley来开发Android restful client
查看>>
Linux Mint下Kindle Fire调试android程序
查看>>
自定义Background
查看>>
git笔记
查看>>
Android开源中国客户端学习 配置文件读写 以及其他一些工具类 <13>
查看>>
国外的opencv识别文档
查看>>
java获取指定字符串的下一个
查看>>
多行数据提交到Struts的ActionForm的List属性中
查看>>